package runnerworm.core;

/**
 * <p>Title: EngineListener</p>
 * <p>Description: Provides the methods a frame that will listen the engine must
 * have.</p>
 * @author Guilherme Mauro Germoglio Barbosa
 */

public interface EngineListener {

  /**
   * Provides what to do when the engine sends a GameOptions object.
   * @param gameOptions the GameOptions.
   */
  void gotOptionsAvailable(GameOptions gameOptions);

  /**
   * Provides what to do when the HighScoresAvailableEvent is captured.
   * @param highScoresString the game's high scores.
   */
  void gotHighScoresAvailable(String highScoresString);

  /**
   * Provides what to do when the AboutAvailableEvent is captured.
   * @param aboutText the game's "about".
   */
  void gotAboutAvailable(String aboutText);

  /**
   * Provides what to do when the HelpAvailableEvent is captured.
   * @param helpText the game's "help".
   */
  void gotHelpAvailable(String helpText);

  /**
   * Provides what to do when an Exception is launched.
   * @param e The exception caught.
   */
  void gotExceptionAvailable(Exception e);

  /**
   * Provides what to do when the engine needs the player name.
   */
  void askPlayerName();
}